Pro-active protection of communication devices that are senstive to vibration or shock

ABSTRACT

A method includes a first communication device detecting vibration or shock, and, in response to detecting vibration or shock, the first communication device broadcasting an alert message that identifies a physical location of the first communication device at the time that the vibration or shock was sensed. The method further includes a second communication device receiving the alert message, wherein the second communication device includes a hard disk drive that can be damaged by vibration or shock. In response to receiving the alert message, the second communication device temporarily parks a read-write head of the hard disk drive to prevent damage from the vibration or shock, wherein the second communication device parks the read-write head without the second communication device independently detecting the vibration or shock. In one option, a server can receive and send alert messages from and to any number of communication devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/567,209 filed on Dec. 11, 2014, which application is incorporated byreference herein.

BACKGROUND

1. Field of the Invention

The present invention relates to systems and methods for protectingvibration-sensitive communication devices against damage duringtransient vibration or shock events.

2. Background of the Related Art

Hard disk drives are a common component of computer systems becausethese devices are able to store large amounts of data in a low cost andefficient manner without loss of data when power is turned off. Forexample, a modern hard disk drive may store multiple terabytes of datain a small form factor, such as 4 inches wide, 6 inches deep and only0.8 inches thick.

A typical hard disk drive has one or more disks or platters with a thinfilm of a ferromagnetic material. Data is stored as changes in thedirection that the ferromagnetic material is magnetized. A read-writehead is positioned close to the surface of the disk in order to modifymagnetization of the material (i.e., write data) and detectmagnetization of the material (i.e., read data previously written).Rapid and controlled positioning of the read-write head is achieved bymounting the platters on a spindle that can rotate at thousands ofrotations per minute and mounting the read-write head on an actuator armthat extends across the platter at a variable position controlled by anactuator. Disk drives having multiple platters will typically have oneread-write head for each platter.

The number and types of mechanical parts, the rapid data response times,the very tight physical tolerances and the sensitivity of theferromagnetic materials that are needed for a hard disk drive tofunction also make the hard disk drive more vulnerable to damage. Inparticular, a hard disk drive can experience damage and data loss as aresult of be subjected to vibration or shock. Efforts to designvibration-resistant and shock-resistant mounting systems and enclosureare not able to prevent all types and magnitudes of vibration or shock.

BRIEF SUMMARY

One embodiment of the present invention provides a method comprising afirst communication device detecting vibration or shock, and, inresponse to detecting vibration or shock, the first communication devicebroadcasting an alert message that identifies a physical location of thefirst communication device at the time that the vibration or shock wassensed. The method further comprises a second communication devicereceiving the alert message, wherein the second communication deviceincludes a hard disk drive that can be damaged by vibration or shock. Inresponse to receiving the alert message, the second communication devicetemporarily parks a read-write head of the hard disk drive to preventdamage from the vibration or shock, wherein the second communicationdevice parks the read-write head without the second communication deviceindependently detecting the vibration or shock.

Another embodiment of the present invention provides a method comprisinga first plurality of communication devices detecting vibration or shock,and each of the first plurality of communication devices, in response todetecting vibration or shock, broadcasting a detection message thatidentifies a physical location of the communication device at the timethat the vibration or shock was sensed. The method further comprises acomputer server receiving the detection message from each of the firstplurality of communication devices, and sending an alert message to eachof a second plurality of communication devices. Furthermore, each of thesecond plurality of communication devices receive the alert message,wherein each of the second plurality of communication devices includes ahard disk drive that can be damaged by vibration or shock. In responseto receiving the alert message, each of the second plurality ofcommunication devices temporarily parking a read-write head of the harddisk drive to prevent damage from the vibration or shock, wherein eachof the second plurality of communication devices park the read-writehead without the communication device independently detecting thevibration or shock.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram of a mobile communications device.

FIG. 2 is a diagram a plurality of mobile communication devices that maycommunicate over a communication network with a photo-sharing service.

FIG. 3 is a diagram of a computer that may implement a photo-sharingservice.

FIG. 4 is a flowchart of a method in accordance with one embodiment ofthe present invention.

FIG. 5 is a flowchart of a method in accordance with another embodimentof the present invention.

FIG. 6 is a diagram of several cars of a commuter train traveling down atrack that includes a bump.

FIG. 7 is a diagram of only cars C3 and C4 from FIG. 6.

FIG. 8 is a diagram of a low flying jet causing potentially damaginglevels of vibration to devices along its path.

DETAILED DESCRIPTION

One embodiment of the present invention provides a method comprising afirst communication device detecting vibration or shock, and, inresponse to detecting vibration or shock, the first communication devicebroadcasting an alert message that identifies a physical location of thefirst communication device at the time that the vibration or shock wassensed. The method further comprises a second communication devicereceiving the alert message, wherein the second communication deviceincludes a hard disk drive that can be damaged by vibration or shock. Inresponse to receiving the alert message, the second communication devicetemporarily parks a read-write head of the hard disk drive to preventdamage from the vibration or shock, wherein the second communicationdevice parks the read-write head without the second communication deviceindependently detecting the vibration or shock.

The first communication device may, without limitation, be a mobilephone, mobile computer, or desktop computer. However, the firstcommunication device must be able to detect vibration or shock, whichmay be detected with a vibroscope or an accelerometer. A vibroscope oraccelerometer may take the form of a piezoelectric, piezoresistive andcapacitive components that may be used to convert mechanical motion intoan electrical signal. Such devices may be implemented as a microelectro-mechanical system (MEMS). The first communication devicepreferably senses the vibration or shock with an internal MEMS-basedaccelerometer.

The second communication device may include, but is not required toinclude, components for detecting vibration or shock. Where the secondcommunication device is capable of detecting vibration or shock, thesecond communication device may function as a first communication devicefor broadcasting alert messages identifying detected vibration or shock,and may be able to independently detect when the vibration or shock hasabated. However, regardless of whether the second communication devicecan detect vibration or shock, the second communication device must becapable of receiving the alert message in order to timely park aread-write head of a hard disk drive that forms part of the secondcommunication device. It should be recognized that parking theread-write head in the second communication device prior to the secondcommunication device detecting vibration or shock, prevents theread-write head from damaging the platters that store data. While thesecond communication device may, without limitation, be a mobile phone,mobile computer, or desktop computer, the second communication devicewill typically not be a mobile phone since most mobile phones do notinclude hard disk drives.

The first communication device is said to “broadcast” a message (i.e.,an alert message or a detection message) in the sense that the firstcommunication device transmits or sends the message to the secondcommunication device without necessarily knowing the identity of thesecond communication device or that there is a second communicationdevice that will necessarily receive the message. However, the messagemay be broadcast using any one or more communication protocolsincluding, without limitation, near-field communication protocols,wireless communication protocols, and local area network and Internetprotocols. Accordingly, the messages may be sent and received over awireless network, wired network or a network including a combination ofwireless and wired connections or switches.

The alert message should indicate that vibration or shock has beendetected at a specific physical location. The alert message may includemore information, such as the magnitude of the shock or the frequencyand amplitude of the vibration. Still further, if the firstcommunication device has detected the vibration or shock and thendetermined that the vibration or shock has abated, then the alertmessage may include a duration of the vibration or shock event. If thealert message includes a duration, then the second communication devicemay keep the read-write head parked for a similar amount of time.Preferably, the read-write head would be parked for a period of timebeginning just prior to the second communication device experiencing thevibration or shock and ending just after the vibration or shock hasabated. Optionally, the read-write head may be parked for a period oftime equal to the identified duration plus some safety margin.

In one embodiment, the method may further comprise the secondcommunication device, in response to receiving the alert message,temporarily caching data writes in a data storage device that does notrely upon moving mechanical components. In a more specificimplementation, the method may further comprise the second communicationdevice, in response to receiving the alert message, temporarily turningon write back cache on the hard disk drive itself. For example, a harddisk drive may normally utilize onboard DRAM as a read cache, but not asa continuous “Write Back” cache due to long term risk of data loss.“Write Back” cache will commit data to the DRAM prior to moving a finalcopy onto the actual non-volatile storage media to allow for betterperformance. The reason for not continuously using “Write Back” cache isthat an unexpected shutdown of the system could result in complete lossof the data in the cache if that data doesn't get transferred over tothe non-volatile memory prior to power dropping so low that the devicecan't work. In this example “Write Back” cache can be turned offnormally, but the device can make the decision to turn Write Back cacheon when vibration or shock is expected as the result of receiving analert message. Turning on the Write Back cache allows the device tocontinue working even as the heads are parked for a few milliseconds bytemporarily utilizing the cache memory as a storage location for writes.Write performance won't affected because writes aren't interruptedduring the event. Furthermore, there isn't a high risk of data loss withunprotected write back cache, since the Write Back cache is only used invery short rare events as opposed to being on all the time for all writeevents

In accordance with one optional feature, the second communication devicemay detect vibration or shock of the second communication device, andthen unpark the read-write head after the vibration or shock has droppedbelow a threshold level. In other words, the second communication devicemay receive an alert message providing advance warning of vibration orshock, but the second communication device may have the capability tomake its own determination about when the vibration or shock has abatedto the point that it is safe to resume normal use of the hard diskdrive.

The physical location of the first communication device at the time thatthe vibration or shock was sensed may be identified by globalpositioning system (GPS) coordinates. Of course, GPS coordinates areonly available if the first communication device includes a GPSreceiver. Alternatively, the physical location of the firstcommunication device may be identified by the physical location of anetwork connection point, such as a wireless switch, that is in directcommunication with the first communication device. This networkconnection point may be either a wired or wireless connection point, butthe location of the network connection point should be known. Forexample, the network connection point may be wired connection in anoffice or hotel room, a wireless (WiFi) connection in a coffee shop, ora cellular communication tower. If the alert message or detectionmessage received from the first communication device by one of theseconnection points, the physical location of the first communicationdevice may be approximated to be the same physical location as theconnection point. While this may not be as accurate as using GPScoordinates, it may be sufficiently accurate for many types of vibrationor shock events.

The method may optionally further comprise the second communicationdevice determining a time period until the second communication devicewill reach the physical location identified in the alert message. Thesecond communication device may do this having received the physicallocation of the vibration or shock and by determining its own positionand current movement, or an intended route being traveled.Alternatively, the second communication device may determine its ownfixed location and determine an expansion of an area where the vibrationor shock is occurring, such as by receiving alert message from multiplecommunication devices. Furthermore, a determination of a time perioduntil the second communication device will reach the physical locationidentified in the alert message, may include a determination of acurrent physical location, speed and direction of the secondcommunication device. Various types of determinations and calculationsmay be facilitated by recording the physical location of the vibrationor shock in a database of a computer server that is accessible to othercommunication devices.

Various embodiments of the present invention may be used to preventdamage to hard disk drives through various vibration or shock events.Without limitation, the vibration or shock may be produced by anearthquake, passing heavy equipment, rough patches in a road or trainrail, or an explosion.

Another embodiment of the present invention provides a method comprisinga first plurality of communication devices detecting vibration or shock,and each of the first plurality of communication devices, in response todetecting vibration or shock, broadcasting a detection message thatidentifies a physical location of the communication device at the timethat the vibration or shock was sensed. The method further comprises acomputer server receiving the detection message from each of the firstplurality of communication devices, and sending an alert message to eachof a second plurality of communication devices. Furthermore, each of thesecond plurality of communication devices receive the alert message,wherein each of the second plurality of communication devices includes ahard disk drive that can be damaged by vibration or shock. In responseto receiving the alert message, each of the second plurality ofcommunication devices temporarily parking a read-write head of the harddisk drive to prevent damage from the vibration or shock, wherein eachof the second plurality of communication devices park the read-writehead without to the communication device independently detecting thevibration or shock.

In one option, the computer server may use the detection messages todetermine an area affected by the vibration or shock. Accordingly, foreach of the second plurality of communication devices, the computerserver may determine the current physical location of the secondcommunication device and determine whether the second communicationdevice will be entering the affected area. Still further, it is possiblefor the computer server to determine whether the affected area isstationary, mobile, expanding or contracting.

In another option, the detection message may identify the time that thevibration or shock was detected. Accordingly, if each of the secondplurality of communication devices reports to the computer server a timethat the alert message was received, then the computer server maydetermine a time delay between one of the first communication devicesdetecting shock or vibration and one of the second communication devicesreceiving the alert message. Knowing the time delay allows a system totune or adjust the time at which the read-write head should be parked.

Embodiments of the present invention may also take the form of computerprogram products including computer readable program instructions forimplementing or initiating any one or more aspects of the methodsdescribed herein. Accordingly, a separate description of the methodswill not be duplicated in the context of a computer program product.

A further embodiment of the present invention provides an apparatuscomprising a communication device. The communication device includes avibroscope or an accelerometer for detecting vibration or shock, a harddisk drive for storing data, and a wireless communication transceiver.In response to detecting vibration or shock, the communication deviceautomatically broadcasts an alert message that identifies a physicallocation of the communication device at the time that the vibration orshock is sensed. In response to receiving an alert message from anothercommunication device, the communication device automatically temporarilyparks a read-write head of the hard disk drive to prevent damage fromthe vibration or shock. The communication device preferably includes aglobal position system transceiver for automatically detecting thephysical location of the communication device.

FIG. 1 is a block diagram of the components in one example of a mobilecommunication device 10, such as a smart phone or laptop computer,capable of implementing embodiments of the present invention. The blockdiagram may be representative of any one or more mobile communicationdevice in accordance with various embodiments of the present invention.The communication device 10 may include a processor 12, memory 14 thatstores vibration/shock detection and damage control logic 62, a battery16, a hard disk drive 18 including an accelerometer 19 capable ofdetecting vibration and/or shock, a camera 28, and an audio codec 20coupled to a speaker 22, a microphone 24, and an earphone jack 26. Thecommunication device 10 may further include a touchscreen controller 30which provides a graphical output to the display device 32 and receivesan input from a touch input device 34. Collectively, the display device32 and touch input device 34 may be referred to as a touchscreen.

The communication device 10 may also include a Wi-Fi and/or Bluetoothtransceiver 40 and corresponding antenna 42 allowing the device tocommunicate with a Bluetooth device 52 or a Wi-Fi router 54, a mobilecommunication transceiver 44 and corresponding antenna 46 allowing thedevice to communicate over a mobile/cellular network 58, and a globalpositioning system (GPS) transceiver 48 and corresponding antenna 50allowing the device to obtain signals from a global positioning systemor satellites 60. In a non-limiting example, the Wi-Fi router 54 and themobile/cellular network 58 may be connected to a global communicationsnetwork 56, such as the Internet. Furthermore, a server 100 may berunning server application logic for receiving detection messages fromvarious communication devices and sending alert (instruction) messagesto other communication devices, where the server 100 may be accessed bythe mobile communication device 10 through the global communicationsnetwork 56 and/or the mobile/cellular network 58.

FIG. 2 is a diagram of a system 70 including a communication network 58enabling communication between a plurality of communication devices 10,optionally including both mobile phones, mobile laptop computers, andother personal computers. The communication network 58 may include theserver 100 or be in communication with the server 100 over a globalcommunications network 56, such as the Internet. Alternate servers 100are shown in different locations, but only one server is needed toimplement embodiments of the present invention that utilize a server.The server 100 may provide one or more services to the communicationsdevices, but may implement one or more steps of the methods or one ormore functions of the program instructions of the present invention. Inone non-limiting example, the server 100 may receive detection alertmessages from one or more of the mobile communication devices 10 thatare detecting vibration or shock and send alert messages to other mobilecommunication devices 10 that have hard disk drives that may be affectedby the vibration or shock.

FIG. 3 is a diagram of an exemplary compute node or server (or simply“computer”) 100 that may be utilized as the server 100, but the hardwaremight also be representative of another communication device. Thecomputer 100 includes a processor unit 104 that is coupled to a systembus 106. Processor unit 104 may utilize one or more processors, each ofwhich has one or more processor cores. A video adapter 108, whichdrives/supports a display 110, is also coupled to the system bus 106.The system bus 106 is coupled via a bus bridge 112 to an input/output(I/O) bus 114. An I/O interface 116 is coupled to I/O bus 114 andaffords communication with various I/O devices, including a keyboard118, a mouse 120, a media tray 122 (which may include data storagedevices such as CD-ROM drives, multi-media interfaces, etc.), a printer124, and USB port(s) 126. While the format of the ports connected to I/Ointerface 116 may be any format known to those skilled in the art ofcomputer architecture, in a preferred embodiment some or all of theseports are universal serial bus (USB) ports. As depicted, the computer100 is able to communicate over a network 58 using a network interface130. The network 58 may be an external network such as the cellularnetwork or global communication network 56, and perhaps also an internalnetwork such as an Ethernet network or a virtual private network (VPN).

A hard drive interface 132 is also coupled to the system bus 106 andprovides an interface with a hard disk drive 134. In a preferredembodiment, the hard drive 134 populates a system memory 136, which isalso coupled to the system bus 106. System memory is defined as a lowestlevel of volatile memory in computer 100. This volatile memory includesadditional higher levels of volatile memory (not shown), including, butnot limited to, cache memory, registers and buffers. Data that populatesthe system memory 136 includes an operating system (OS) 138 andapplication programs 144.

The operating system 138 includes a shell 140, for providing transparentuser access to resources such as application programs 144. Generally,shell 140 is a program that provides an interpreter and an interfacebetween the user and the operating system. More specifically, shell 140executes commands that are entered into a command line user interface orfrom a file. Thus, shell 140, also called a command processor, isgenerally the highest level of the operating system software hierarchyand serves as a command interpreter. The shell provides a system prompt,interprets commands entered by keyboard, mouse, or other user inputmedia, and sends the interpreted command(s) to the appropriate lowerlevels of the operating system (e.g., a kernel 142) for processing. Notethat while shell 140 is a text-based, line-oriented user interface, thepresent invention will equally well support other user interface modes,such as graphical, voice, gestural, etc.

As depicted, the OS 138 also includes a kernel 142, which includes lowerlevels of functionality for the OS 138, including providing essentialservices required by other parts of OS 138 and application programs 144,including memory management, process and task management, diskmanagement, and mouse and keyboard management. The application programs144 in the system memory of computer 100 may include various programsand modules for implementing the methods described herein, such as thedetection message handling logic 62 (for handling detection messagesreceived from various communication devices) and alert messagegeneration logic 64 (for sending alert messages to identifiedcommunication devices).

The hardware elements depicted in the computer 100 are not intended tobe exhaustive, but rather are representative components suitable toperform the processes of the present invention. For instance, thecomputer 100 may include additional memory storage devices such asmagnetic cassettes, digital versatile disks (DVDs), Bernoullicartridges, and the like. These and other variations are intended to bewithin the spirit and scope of the present invention.

FIG. 4 is a flowchart of a method 80 in accordance with one embodimentof the present invention. In step 82, a first communication devicedetects vibration or shock. In step 84, in response to detectingvibration or shock, the first communication device broadcasts an alertmessage that identifies a physical location of the first communicationdevice at the time that the vibration or shock was sensed. In step 86, asecond communication device receives the alert message, wherein thesecond communication device includes a hard disk drive that can bedamaged by vibration or shock. In step 88, in response to receiving thealert message, the second communication device temporarily parks aread-write head of the hard disk drive to prevent damage from thevibration or shock, wherein the second communication device parks theread-write head without the second communication device independentlydetecting the vibration or shock.

FIG. 5 is a flowchart of a method 90 in accordance with anotherembodiment of the present invention. In step 92, a first plurality ofcommunication devices detecting vibration or shock. In step 94, each ofthe first plurality of communication devices, in response to detectingvibration or shock, broadcast a detection message that identifies aphysical location of the communication device at the time that thevibration or shock was sensed. In step 96, a computer server receivesthe detection message from each of the first plurality of communicationdevices, and sends an alert message to each of a second plurality ofcommunication devices. In step 98, each of the second plurality ofcommunication devices receives the alert message, wherein each of thesecond plurality of communication devices includes a hard disk drivethat can be damaged by vibration or shock. In step 99, in response toreceiving the alert message, each of the second plurality ofcommunication devices temporarily parks a read-write head of the harddisk drive to prevent damage from the vibration or shock, wherein eachof the second plurality of communication devices park the read-writehead without the communication device independently detecting thevibration or shock.

Working Example 1

In reference to FIG. 6, commuters are on a train 150 on their way towork (see left-to-right direction of travel indicated by the arrow 152).The cars of the train are labeled C1-C5 from the front of the train tothe back. The train 150 rides on a track 156 that includes a bump 154.As the train continues moving forward the cars will encounter the bump154 in order. As shown, car C1 has already passed the bump 154, and carC2 is about to experience the bump. After that, the cars C3-C5 willencounter the bump 154 in sequential order and with a time delayaccording to the speed of the train and the length of each car.

FIG. 7 is a diagram of only cars C3 and C4 from FIG. 6. Two of thecommuters (User 1 “U1” and User 3 “U3”) are using their laptopscomputers and one commuter (User 2 “U2”) is using a mobile phone. U1(laptop computer) and U2 (mobile phone) are in car C3 of the train 150,and U3 (laptop computer) is in car C4. As the train moves forward in thedirection of the arrow 152, car C3 goes over the rough railway junction(bump 154) in the rails 156 that jars the train car enough so that theaccelerometer in both the laptop (U1) and the mobile phone (U2) detect ashock. These two devices (U1 and U2) send out an immediate alert messageto other communication devices that may pass through the same physicallocation where the vibration or shock was detected. The alert messagemay include GPS coordinates of the physical location where the vibrationor shock was detected. Upon receiving the alert message, the laptop (U3)in car C4 is made aware of the impending shock and may park a read-writehead of a hard disk drive in the laptop. Receipt of the alert messageallows the read-write head to be parked proactively for a period of timethat suits the duration of the event or until the laptop (U3) has passedthe physical location where the shock was detected.

If the communication devices (U1, U2 and U3) do not have GPScapabilities, the physical location of each device may be determined bywhich connection point on the train is providing network services to thedevice. For example, each car of the train may have its own networkswitch or a WiFi hub (“connection point”) that can be used by thecommunications devices within a particular train car. Accordingly, U1and U2 are found to be communicating through a WiFi hub in car C3 (i.e.,“WiFi 3”) of the train, and U3 is found to be communicating through aWiFi hub in car C4 (i.e., “WiFi 4”) of the train. Therefore, thephysical locations of U1 and U2 are determined to be car C3 (in theabsence of GPS data) and the physical location of U3 is determined to becar C4. In one option, an application running on a server 158 aboard thetrain can provide data to the network informing each communicationdevice (U1, U2 and U3) of the train's current speed and the distancebetween each of the individual rail cars in order to allow for precisetiming of when the bump 154 will affect the laptop (U3) in car C4.Ultimately, since devices U1 and/or U2 detect the shock and send adetection message to the WiFi 3 connection point, and an alert messageis forwarded through the network to device U3 in car C4, device U3 isable to park the read-write head(s) of its hard disk drive prior toexperiencing a shock causes by the bump 154.

Working Example 2

FIG. 8 is a diagram of a low flying jet 160 causing potentially damaginglevels of vibration to devices along its path. The jet has already flownover a first device U1, resulting in U1 detecting the vibration andsending out a detection message (Detection Message 1), which identifiesthe time (Time 1) and physical location (Location 1) of the first deviceU1 at which the vibration was detected. Optionally, the detectionmessage may further identify the duration of the vibration, if known.However, the detection message should be sent out immediately, such thatthe duration may not yet be determinable.

As shown, the second device U2 has just detected vibration and has alsosent out a detection message (Detection Message 2), which identifies thetime (Time 2) and physical location (Location 2) of the second device U2at which the vibration was detected. The detection messages arecommunicated through the network 56, 58 to a server 100 (Vibration/ShockDetection and Alert Message Generation Server). The server 100 uses thedata received in Detection Message 1 and Detection Message 2, as well asthe known location of the third device (U3) to determine whether U3 willbe affected by the vibration. The server 100 may use variousmathematical models, which may be as simple as an estimation assuming alinear path of the jet or knowing jet approach and landing lanes near anairport. However, an alert message may be broadcast to any communicationdevice that is determined to have a potential for damage as a result ofthe vibration. As shown, the Alert Message is broadcast to U3, U4 andother devices in the path of the jet. The Alert Message may bebroadcast, for example, to every device that is connecting to thenetwork 56, 58 through a given connection point or every device that iscurrently located within a range of GPS coordinates.

While the present example is directed to a jet moving along a path, itshould be recognized that various communication devices may similarlydetect vibrations from an earthquake and send detection messagesidentifying the location where the vibration was detected. This wouldresult in alert messages being broadcast to yet other communicationdevices that would park their hard disk drives prior to actuallyexperiencing the vibrations. The primary difference in the method usedto prevent damage from an earthquake and the method used to preventdamage from a low flying jet is that the earthquake vibrations willlikely be detected by a greater number of devices over a much largerarea, and the vibrations will emanate outwardly in many directionsrather than along a specific path.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,components and/or groups, but do not preclude the presence or additionof one or more other features, integers, steps, operations, elements,components, and/or groups thereof. The terms “preferably,” “preferred,”“prefer,” “optionally,” “may,” and similar terms are used to indicatethat an item, condition or step being referred to is an optional (notrequired) feature of the invention.

The corresponding structures, materials, acts, and equivalents of allmeans or steps plus function elements in the claims below are intendedto include any structure, material, or act for performing the functionin combination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but it is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method comprising: a first communication devicedetecting vibration or shock; in response to detecting vibration orshock, the first communication device broadcasting an alert message thatidentifies a physical location of the first communication device at thetime that the vibration or shock was sensed; a second communicationdevice receiving the alert message, wherein the second communicationdevice includes a hard disk drive that can be damaged by vibration orshock; in response to receiving the alert message, the secondcommunication device temporarily parking a read-write head of the harddisk drive to prevent damage from the vibration or shock, wherein thesecond communication device parks the read-write head without the secondcommunication device independently detecting the vibration or shock. 2.The method of claim 1, further comprising: the second communicationdevice detecting vibration or shock of the second communication device;the second communication device unparking the read-write head after thevibration or shock has dropped below a threshold amount.
 3. The methodof claim 1, wherein the first and second communication devices aremobile communication devices selected from mobile phones and mobilecomputers.
 4. The method of claim 1, further comprising: in response toreceiving the alert message, the second communication device temporarilyturning on write back cache on the hard disk drive.
 5. The method ofclaim 1, further comprising: in response to receiving the alert message,the second communication device temporarily caching data writes in adata storage device that does not rely upon moving mechanicalcomponents.
 6. The method of claim 1, wherein the first communicationdevice senses the vibration or shock with an internal accelerometer. 7.The method of claim 1, wherein the alert message is sent from the firstcommunication device to the second communication device over a wirelessnetwork.
 8. The method of claim 1, wherein the physical location of thefirst communication device is identified by global positioning systemcoordinates.
 9. The method of claim 1, wherein the physical location ofthe first communication device is identified by the physical location ofa network connection point that is in direct communication with thefirst communication device.
 10. The method of claim 1, wherein thephysical location of the first communication device is identified by thephysical location of a wireless switch that is in direct wirelesscommunication with the first communication device.
 11. The method ofclaim 1, further comprising: recording the physical location of thevibration or shock in a database of a computer server accessible toother communication devices.
 12. The method of claim 1, furthercomprising: the second communication device determining a time perioduntil the second communication device will reach the physical locationidentified in the alert message.
 13. The method of claim 12, whereindetermining a time period until the second communication device willreach the physical location identified in the alert message, includesdetermining a current physical location, speed and direction of thesecond communication device.
 14. The method of claim 1, wherein thealert message includes a duration of the vibration event.
 15. A methodcomprising: a first plurality of communication devices detectingvibration or shock; each of the first plurality of communicationdevices, in response to detecting vibration or shock, broadcasting adetection message that identifies a physical location of thecommunication device at the time that the vibration or shock was sensed;a computer server receiving the detection message from each of the firstplurality of communication devices, and sending an alert message to eachof a second plurality of communication devices; each of the secondplurality of communication devices receiving the alert message, whereineach of the second plurality of communication devices includes a harddisk drive that can be damaged by vibration or shock; in response toreceiving the alert message, each of the second plurality ofcommunication devices temporarily parking a read-write head of the harddisk drive to prevent damage from the vibration or shock, wherein eachof the second plurality of communication devices park the read-writehead without the communication device independently detecting thevibration or shock.
 16. The method of claim 15, further comprising: thecomputer server using the detection messages to determine an areaaffected by the vibration or shock; and for each of the second pluralityof communication devices, the computer server determining the currentphysical location of the second communication device and determiningwhether the second communication device will be entering the affectedarea.
 17. The method of claim 16, further comprising: the computerserver determining whether the affected area is stationary, mobile,expanding or contracting.
 18. The method of claim 15, wherein thedetection message identifies the time that the vibration or shock wasdetected, the method further comprising: each of the second plurality ofcommunication devices reporting to the computer server a time that thealert message was received; and the computer server determining a timedelay between one of the first communication devices detecting shock orvibration and one of the second communication devices receiving thealert message.